# -*- coding: utf-8 -*-
######
#
# activity.py
# 
# Clase para manejar objectos tipo acitivity con información necesaria. 
#
# Alejandra Josué 11496
# Benito Maza 11088
# Jorge Lainfiesta 11142
# 16/Abr/2011
#
######
import time
import datetime

#Clase para almacenar datos de cada jugador
class activity:
   
   #Constructor. Se inician variables de la clase.
   def __init__(self):
      self.id = -1   #No tiene ningún ID asignado
      self.idu = -1 #No tiene ningún usuario asignado
      self.name = ""
      self.description = ""
      self.date = datetime.date.today() #Inicia con la fecha de este momento
      self.format = "%d/%m/%Y"
   
   #Función que recibe un String e intenta convertirlo a int.
   #  Retorna el int si logra convertirlo, o False si no.
   def parseInt(self, num):
      'String num'
      try:
         num = int(num)
         return num
      except:
         return False
   
   #Función que recibe un String con una fecha e intenta convertirlo en una fecha.
   #  Retorna un datetime si logra convertir el string, o False si no.
   def parseDate(self, fecha):
      '''String fecha en formato d/m/Y'''
      try:
         fecha = datetime.datetime(*time.strptime(fecha, self.format)[0:3])
         return fecha
      except:
         return False

   #Recibe una datetime fecha y lo retorna como String
   def getStringDate(self, fecha):
      """datetime fecha"""
      return fecha.strftime(self.format)

   #Agrupa los atributos de la actividad en una lista y la retorna
   def toList(self):
      dateStr = self.getStringDate(self.date)
      actLista = [self.id, self.idu, self.name, self.description, dateStr]
      return actLista
   
   #Recibe una lista y se asigna los atributos contenidos en la lista.
   def fromList(self, lista):
      self.id = lista[0]
      self.idu = lista[1]
      self.name = lista[2]
      self.description = lista[3]
      self.date = self.parseDate(lista[4])
